import { defineStore } from 'pinia'
const exceptPath = ['/', '/login', '/404'] // 这些页面不添加到tags内

export const useProject = defineStore('project', {
  state: () => {
    return {
      loading: false,
      isExistRoute: false, // ---------------之后考虑替换为其它的必要数据
      routes: [], // 当前的路由配置项 用于生成侧边导航栏
      tags: [{
        path: '/home/index',
        name: 'homeIndex',
        meta: {
          title: '首页'
        }
      }],
      isCollapse: false, // 侧边导航栏是否收起
      pageWidth: 0, // 网页内容区域宽度
      isResize: '', // 窗口是否变化 每次变化生成一个随机的数字 可以以此监听
    }
  },
  actions: {
    modifyTags({ data, type }){
      if(type === 'add'){
        // 当页面刷新时 第一次进beforeEach的数据只有path 没有name等 所以在添加之前判断是否有name等数据
        if(!(data.path && data.name)){ return }
        const isExist = this.tags.find(item => item.path === data.path)
        if(isExist) { return }
        if(exceptPath.includes(data.path)){ return }
        this.tags.push(data)
      } else if (type === 'close'){
        this.tags = this.tags.filter(item => item.path !== data.path)
      }
    },
    modifyIsResize(){
      this.isResize = Math.random().toString()
    }
  }
})
